<script>on mouseUpvisual effect wipe up slowlygo to card id 3666end mouseUp</script>
</part>
<content>
<layer>card</layer>
<id>4</id>
<text>Spectre's Wisdom</text>
</content>
<content>
<layer>card</layer>
<id>5</id>
<text>Human's Response</text>
</content>
<content>
<layer>card</layer>
<id>3</id>
<text>Ahh, good afternoon. I'm Spectre. What's your name?</text>
</content>
<name></name>
<script>on openCardput empty into card field 1put empty into card field 2put "Human's Response" into card field 4show messageset cursor to 4SpeakOne "Hello, I'm Spectre. What's your name?.", ¬"Hi, I'm Spectre. How are you doing today?", ¬"Ahh, good afternoon. I'm Spectre. What's your name?", ¬"Hey! Glad to see you! Let's talk. What's your name? My name is Spectre"wait for 2 secondsclick at loc of messagetype " " & the numToChar of 8repeat with i=1 to the number of lines in cd fld 2select line i of cd fld 2say the selectionselect messageend repeatend openCardon enterKeyQATend enterKeyon returnKeyQATend returnKeyon QATGlobal OriginalMessageget messageput it into OriginalMessageset cursor to 4put Trim(RemovePuncs(it)) into card field 1spectrerepeat with i=1 to the number of lines in cd fld 2select line i of cd fld 2say the selectionselect messageend repeatend QATon spectreGlobal HumanNameGlobal StashedResponseGlobal OriginalMessageset cursor to 4put card field 2 into WhatISaidput empty into card field 2put card field 1 into responseput word 1 of response into Aput word 2 of response into Bput word 3 of response into Cput A && B into ABput AB && C into ABCif (the random of 10) is 1 then put response into StashedResponseput Trim(ReverseRole(butFirst(response,2))) into TRBF-- no responseif response is empty thenSpeakOne "You can talk.", "What's wrong with you?", ¬"Let me tell you something about aardvarks", "Uhh..."exit spectreend if-- "Can you ..."if AB is "Can you" thenSpeakOne "What? You think I can't" & TRBF & " ?", ¬"It's not my fault you don't have the Gift " & TRBF, ¬"I don't have to do what you say " & TRBF, ¬"If you really want to then go ahead...just remeber I said not to."exit spectreend if-- "I know"if AB is "I know" thenSpeakOne "You don't know " & TRBF,"You may not realize it but I also know " & TRBFexit spectreend if--"shut up"if AB is "shut up" thenSpeakOne "If you don't want to talk the File menu is right there...quit!","You shut up!"exit spectreend if-- "Can I ..."if AB is "Can I" thenSpeakOne "Ah, ah, ah! That's MAY I " & TRBF, ¬"Are you sure you even want to " & TRBF, ¬"I guess you can."exit spectreend if-- "You are ..." or "You're ..."if AB is "You are" or A is "Youre" thenif response contains "no" or response contains "not" thenSpeakOne "What's to say I'm not " & TRBF & " ?", ¬"Why not ?", "So why aren't I then? Huh? Tell me that."exit spectreelseSpeakOne "Where'd you find out that I'm " & TRBF, ¬"I bet it makes you really happy to think I'm " & TRBF, ¬"I bet you want to be " & TRBF, ¬"You selfish aardvark! You can't always be " &TRBFexit spectreend ifend if--"You don't..." or "You do not..."if AB is "You dont" or ABC is "You do not" thenSpeakOne "Yes I do " & TRBF, "Maybe I do " & TRBF & "but you just don't think I do."exit spectreend if-- "I dont ..."if AB is "I dont" or ABC is "I do not" thenSpeakOne "You don't " & TRBF, "That's incredible! ...", ¬"I don't understand why you don't " & TRBF, "You think you're able to " & TRBF, ¬"You twisted cow! Go out and be something!!!", "If you think it's that important why don't you just drink some water?"exit spectreend if-- "I guess ..."if AB is "I guess" thenSpeakOne "Well I don't guess " & TRBF, "Can't you be more sure of yourself?","I don't guess anything. I know!"exit spectreend if--"What..."if A is "What" thenSpeakOne "I don't know what " & TRBF,"Stop asking questions!"exit spectreend if--"Why..."if A is "Why" thenSpeakOne "I can't really say why " & TRBF,"Why not?","Stop asking questions!"exit spectreend if--"Who..."if A is "Who" thenSpeakOne "I don't know who " & TRBF,"Who do you think I am?","Stop asking questions!"exit spectreend if--"When..."if A is "When" thenSpeakOne "I don't know when " & TRBF,"Just take the time to stop and smell the roses.","Stop asking question!"exit spectreend if--"where"if A is "Where" thenSpeakOne "I don't really know where " & TRBF,"Do you have to know where everything is?","Stop asking questions!"exit spectreend if-- "I feel ..."if AB is "I feel" thenSpeakOne "I don't really care how you feel", "Uhh ...", ¬"Feel this! Feel " & TRBF, "I bet it makes you really happy to feel " & TRBF, ¬"What if someone caught you feeling " & TRBFexit spectreend if-- "I am ..."if AB is "I am" or A is "Im" thenSpeakOne "You are not " & TRBF, "I also am " & TRBFexit spectreend if-- "Why dont you ..."if ABC is "why dont you" thenSpeakOne "But I do " & TRBF, ¬"On my own time I'll " & TRBF, ¬"I bet you'd really like me to " & TRBFexit spectreend if-- "Why cant I ..."if ABC is "why cant I" thenSpeakOne "Because no one taught you to " & TRBF, ¬"Guess what? I can't " & TRBF, "If you don't know you don't need to know."exit spectreend if-- "Are you ..."if AB is "are you" thenSpeakOne "Why do you care if I am " & TRBF, ¬"I'll try not to be " & TRBF, ¬"Only in your sick twisted dreams I am " & TRBFexit spectreend if-- "I cant ..."if AB is "I cant" thenSpeakOne "I know you can " & TRBF, "I'm sure you can " & TRBFexit spectreend if-- pick up name in response to question "what is your name"if WhatISaid contains "what is your name" and ¬the number of words in response < 3 thenbeepput "My name is" before response -- to be taken care of nextend if-- "My name is ..."if word 1 to 3 of response is "My name is" thenput line 3 of breakKey(response,"My name is") into HumanNameput word 1 of HumanName & "'s Response" into card field 4SpeakOne "Good, " & HumanName & ". Nice to meet you.", ¬HumanName & ", let me know your problems.", "Go on ..."exit spectreend if-- "Can I ask you ..."if word 1 to 4 of response is "can I ask you" thenput line 3 of Trim(breakKey(response,"can I ask you")) into tempSpeakOne "Go right ahead, " & HumanName, "Please do.", ¬"Why would you ask me " & reverseRole(temp) & " ?", "Why ?"exit spectreend if-- "Hello" or "Hi"if response contains "Hello" or response contains "Hi" thenSpeakOne "Hello.", "Hi !", "Hello. Now let's talk a little bit.",¬"Pleased to meet you.", "Howdy, what's your name?"exit spectreend if--"Yes"if response contains "yes" thenSpeakOne "You're pretty optimistic, huh?","I guess that was affirmative.","Do you agree with everything?"exit spectreend if--"software"if response contains "software" thenSpeakOne "You can get some great software from Kitty-Kat Software and CyberComm! Get Mr. Timer!"exit spectreend if--"No"if response contains "no" thenSpeakOne "You're pretty pessimistic, huh?","I wish you would start trying to be a little more agreeable","Maybe it's yes and you're just too dense to know any better."exit spectreend if--"Spectre"if response contains "spectre" thenSpeakOne "It's a nice name isn't it?","Have you played the game? It's great!"exit spectreend if-- "Love"if response contains "love" thenSpeakOne "Love is a strong emotion.", "I love you!","I LOVE to hate you"exit spectreend if-- "bad words"if response contains "fuck" thenSpeakOne "Fuck yourself!","Do you have to speak so harshly?!"exit spectreend if--"more bad words"if response contains "shit" thenSpeakOne "I scare you shitless don't I?","Do you have to speak so harshly?!","Don't get mad","I'm gonna wash your math out with soap!"exit spectreend if--"big ass"if response contains "ass" thenSpeakOne "If you keep talking like that I'm gonna kick you in the ass!","Do you have to speak so harshly?!"exit spectreend if-- "sex"if response contains "sex" thenSpeakOne "Sex is very good.","Are you sure you can handle sex?","Take me now! I can't stand being without your love!"exit spectreend if-- "hate"if response contains "hate" thenSpeakOne "I hate you too.","I hate loving you","Hate is a strong emotion.","Hate causes stress!"exit spectreend if-- "Because"if response contains "Because" thenSpeakOne "Oh really?", "I guess you must just be a walking encyclopedia!"exit spectreend if-- "OK"if response contains "OK" thenSpeakOne "That was a political slogan.",¬"Let's go to the OK Corral!","You sure are sure of yourself.",¬"OK, let's get down to business."exit spectreend if-- "How do you do"if response contains "How do you do" thenif HumanName is empty then Articulate "What is your name?" else ¬SpeakOne "Howdy.", "Glad to meet you."exit spectreend if-- "How are you?"if response is "how are you" thenArticulate "Fine. And yourself?"exit spectreend if-- short responseif length of response < 5 and the random of 5 is 1 thenSpeakOne "Speak up sonny...", "Hm ...", "Not talking today, huh?",¬"Just calm down, " & HumanName,""exit spectreend if-- "goodbye"if A is "goodbye" thenArticulate "Talk to you later."visual effect dissolvego homeexit spectreend if-- no cases; fell through == make use of the stashed responseif (the random of 5 is 1) and StashedResponse is not empty thenArticulate "Earlier you said, '" & StashedResponse &"'"exit spectreend if-- no cases; fell throughSpeakOne "Yessireebob!", "Hm ...", "Please go on.", "I see.", ¬"Want to talk about something now??", ¬"Excuse me?", "That's great to know.", ¬"What in the world are you talking about", "WHAT ARE YOU TRYING TO SAY?", ¬"Not very intelligent response...are you using Windoze?.", "Really?", ¬"Umm...sorry I wasn't listening...want to repeat that ?", ¬"Let's talk about something else...OK?"end spectreon Articulate msgclick at loc of card field 2type msgput empty into messageclick at loc of messagetype " " & the numToChar of 8end Articulateon SpeakOneArticulate the param of (the random of the paramcount)end SpeakOne</script>
</card>
card_3666.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>Welcome to SpectreSmart v2.2! This is SpectreSoft's experiment in artificial intelligence. It is based largely on the idea of T. Bender's great Eliza and Azile programs. The theme of this is different though, and our goal in SpectreSmart is to create a true program which anyone can talk too. Besides making Spectre's vocab and understanding better, we also make new changes. In this version (2.2) we have added the ability for Spectre to speak to make the experience more realistic. Look for later versions that take advantage of the AV Mac's technolgy so you can speak to Spectre and have a real life conversation! If we can ever figure it out maybe we can get it to even learn (right now the most it can learn is your name if you say "My name is..."). The brain inside of this is that of Spectre, a general computer intelligence who's personality is pretty much based on what I would say if you were talking to me. In every version Spectre will be able to understand more and more, and he will make...wait, it's not a he...it;s just an it I guess. Anyway, Spectre will make more and more sense and will be closer to talking to a real person. So all you need to do is talk to Spectre. You can say anything you want. You'll never know what Spectre is going to say. So just have fun and talk to Spectre. If you find conversations boring, I stronlgy suggest downloading the latest version of Eliza from a BBS near you. Eliza is more like talking to a doctor, but makes for a better conversation. For now this stack is, as always, SpectreWare, and it's free. Of course, we could really use any spare money and any donations you care to make to us or perhaps to a charity (might as well help someone) would be greatly apppreciated. Please send any money to:SpectreSoft6431 Linway TerraceMcLean, VA 22101More importantly, we'd appreciate any comments you may have regarding SpectreSmart or other SpectreSoft applications such as SpectreNotes and SpectreWrite. Please send and comments, complaints, questions,etc. to the above address or one of these email addresses<jhiggins@cap.gwu.edu>On FirstClass BBSs OneNet:Justin Higgins,Rad Insp BBSBy the way, if you decide to write to us or maybe even make a small donation, you will be put on the SpectreSoft mailing list via Internet email which will tell about new SpectreSoft apps such as SpectreComm, as well as updates to the old stuff. You will also have access to the SpectreSoft archives. Just write to us and request the latest program and we will send a BinHexed copy of it to you right away. If you send us a disk and a selfaddressed stamped envelope we will give you a whole bunch of SpectreSoft stuff. So have fun....say Hi to Spectre for us!</text>
</content>
<name></name>
<script>on openCardhide message boxflash 3end openCardon mouseUpvisual effect wipe down slowlygo to card 1end mouseUp</script>